package List;

import com.sun.org.apache.bcel.internal.generic.ATHROW;

import java.util.Arrays;

/**
 * Created with Intellij IDEA.
 * Description;
 * User:墨琦
 * Data:2023-04-04
 * Time:16:48
 */
public class SeqList {
    private int[] elem;
    private int usedSize;
    public SeqList()
    {
        this.elem=new int[10];
    }
    public void display()
    {
        for(int i=0;i<usedSize;i++)
        {
            System.out.print(elem[i]+" ");
        }
        System.out.println();
    }
    // 新增元素
    public void add(int data)
    {
        if(isFull())
        {
            elem= Arrays.copyOf(elem,2*elem.length);
        }
        this.elem[usedSize]=data;
        usedSize++;
    }
    //判断满的情况
    public boolean isFull()
    {
        return usedSize == elem.length;
    }
    // 判定是否包含某个元素
    public boolean contains(int data)
    {
        for(int i=0;i<usedSize;i++)
        {
            if(elem[i]==data)
            {
                return true;
            }
        }
        return false;
    }
    public int indexOf(int toFind)
    {
        for(int i=0;i<usedSize;i++)
        {
            if(elem[i]==toFind)
            {
                return i;
            }
        }
        return -1;
    }
    // 获取 pos 位置的元素
    public int get(int pos)
    {
        if(pos>=usedSize||pos<0)
        {
            throw new PosOutBoundsException("pos位置错误");
        }
            return elem[pos];

    }

    public int size()
    {
        return usedSize;
    }

    public void set(int pos, int value)
    {
        if(pos>=usedSize||pos<0)
        {
            throw new PosOutBoundsException("pos位置错误");
        }
         else {
            elem[pos] = value;
            System.out.println("设置完成");
        }
    }
    //指定位置添加元素
    public void add(int pos, int data)
    {
        if(isFull())
        {
            elem= Arrays.copyOf(elem,2*elem.length);
        }
        for(int i=this.usedSize-1;i>=pos;i--)
        {
            this.elem[i+1] = this.elem[i];
        }
        this.elem[pos] = data;
        this.usedSize++;
    }
    //清空顺序表
    public void clear()
    {
        usedSize=0;
    }
}
